1. Field of the Invention
This invention generally relates to the field of data communication networks. More particularly, the present invention relates to a method and system of providing advanced teaming functionality, capable of accommodating heterogeneous adapters to improve the utility and performance of a fault-tolerant network adapter team.
2. Description of Related Art
Most computer communication networks designate at least one computer as its network server. Servers operate as centralized repositories for all the applications and work-files available on the network and provide an expedient way to interconnect and execute programs that are distributed across a network. Servers are also responsible for managing the access and flow of information on the network. As a result, enterprises are increasingly relying on such networks to support both routine and business-critical applications.
Such networks, however, are not without weaknesses. For example, as illustrated in the lower portion of FIG. 1 (Prior Art), a particularly susceptible element in all networks is the network link 191A to the server 100A. The network link 191A is physically coupled to an adapter 101A (i.e., network interface card) installed within the server 100A. As such, all data traveling to, and from, the network must pass through the adapter 101A. A failing adapter 101A will, therefore, compromise the network server 100A connectivity and ultimately result in the loss of productivity.
In an effort to guard against such vulnerability, fault-tolerant adapter teams 105, as shown in the upper portion of FIG. 1, have been developed which rely on redundancy for their restorative capabilities. These adapter teams 105, typically comprise a set of M adapters 101, 101B, 101C, . . . 101M along with corresponding team software, and can be manually configured, by the network administrator, to designate one of the adapters as xe2x80x9cprimaryxe2x80x9d 101 and the remaining adapters as xe2x80x9csecondary adaptersxe2x80x9d 101B, 101C, . . . 101M. The primary adapter 101 is configured to support a primary connection 191 to the network and embodies the identity of the adapter team 105 by having its Media Access Control (MAC) address serve as the network adapter 101 address. As such, all communications destined for the server 100 shall be directed towards the primary adapter.
Meanwhile, the secondary adapters 101B, 101C, . . . 101M serve as back-up connections. The adapter team 105 software contains one or more intermediate drivers 185 that monitor all network connections 191, 191B, 191C . . . 191M and, in the event of primary adapter 101 failure, the software provides xe2x80x9cfail-overxe2x80x9d capability by defaulting to a pre-selected secondary adapter (i.e., 101B) as the alternate primary. The pre-selected secondary adapter is the secondary adapter in the adapter team 105 determined to be most capable. Traffic is subsequently re-routed to the alternate primary adapter, while still utilizing the original primary (or team) 101 address. Thus, the pre-selected secondary adapter 101B automatically assumes ownership of all data going to the server 100, without the need for human intervention. In some instances, the team""s software also provides for automatic xe2x80x9crestore-backxe2x80x9d capabilities, which allows a replacement adapter, positioned in a team slot previously occupied by a failing primary adapter 101, to be re-instituted as the primary if the software senses that the adapter is fully operational. In this manner, the redundant set of adapters 101, 101B, 101C . . . 101M provides network link recovery that is generally transparent to applications and users.
It is also possible to capitalize on the existence of multiple adapters in a team to increase the effective system bandwidth. For example, Adaptive Load Balancing techniques make use of the team""s M adapters 101, 101B, 101C, . . . 101M to increase performance by balancing the transmission of data from the server 100 to the network. In such a configuration, the team""s address, which as stated above, is the primary adapter""s address, is advertised to the network. Accordingly, all server-bound traffic is received by the primary adapter 101. The remaining M-1 team adapters (referred to above as secondary adapters) 101B, 101C, . . . 101M do not receive any traffic originated by the client. However, the M-1 team adapters 101B, 101C,. . . 101M, as well as the primary adapter 101, do transmit data from the server 100 to the network. The transmission of data is achieved by ratably allocating the data across the primary adapter 101 and remaining M-1 team adapters 101B, 101C, . . . 101M. This effectively aggregates the outgoing server bandwidth, thereby increasing network throughput and mitigating bottlenecking episodes.
Although conventional fault-tolerant adapter teams 105 are capable of providing fast and reliable recovery from adapter failures, a high premium is often paid in both hardware cost and network efficiency. One reason for such a high premium in conventional teams 105 arises from the need to have adapters of the same type or speed to ensure a seamless fail-over transition. This significantly increases the cost of system maintenance by forcing the purchase of similar adapters and rendering dissimilar adapters unusable. This also limits the choice of adapters that can be utilized in fault-tolerant teams 105 or Adaptive Load Balancing teams 105. Such limitations can be particularly costly when changes in the server 100 configuration precipitates adapter upgrades, rendering all the inventoried adapters obsolete.
Moreover, conventional symmetric fault-tolerant teams 105 require the manual designation of the primary adapter 101. These conventional teams 105 are, therefore, incapable of either automatically initializing the primary adapter 101 or doing so in an intelligent and efficient manner.
Furthermore, Adaptive Load Balancing teams 105 capable of accommodating dissimilar adapters, cannot select, xe2x80x9con the flyxe2x80x9d, the adapter with the next-best performance profile that optimizes network throughput. Because the incoming data is solely routed to the primary adapter 101 and the outgoing data is proportionately balanced across all M team adapters 101, 101B, 101C, . . . 101M, a non-optimal secondary adapter 101B selection can compromise the efficiency of a network.
In addition, some advanced servers 100 possess hot-plug capabilities, allowing network administrators to swap components without powering down the server 100. With respect to hot-plug-compatible fault-tolerant teams 105, hot-plugging is achieved by electrically isolating a port in the team while maintaining power to the rest of the team ports. Conventional hot-plugging adapter teams 105, however, only permit the failed adapter to be replaced by an identical adapter. This further limits the choice of adapters available for fault-tolerant teams 105.
What is needed is a system and method that can overcome the limitations of conventional systems by providing advanced teaming functionality which is capable of supporting both, similar and dissimilar network adapters, to improve the utility and performance of fault-tolerant adapter teams.
Systems and methods consistent with the principles of the present invention address the need identified above and overcomes the prior art limitations by presenting a system and method that provides advanced teaming functionality which is capable of supporting both similar and dissimilar network adapters, to improve the utility and performance of fault-tolerant adapter teams.
Accordingly, a system and method, consistent with the principles of the present invention as embodied and broadly described herein, includes a team of multiple network adapters such that the team is capable of concurrently supporting network adapters of similar and dissimilar types. The capabilities of each of the network adapters in the team are dynamically assessed and based on the capabilities of the adapters, a primary adapter is selected.